# i.定义了一个学生类：
# 属性:学号，姓名，年龄，性别，身高，体重，成绩，家庭地址，电话号码。
# 行为：学习（要求参数传入学习的时间），玩游戏（要求参数传入游戏名），编程（要求参数传入写代码的行数），数的求和（要求参数用变长参数来做，返回求和结果）
class Student:
    def __init__(self, student_id, name, age, sex, height, weight, grade, position, phone_number):
        self.student_id = student_id
        self.name = name
        self.age = age
        self.sex = sex
        self.height = height
        self.weight = weight
        self.grade = grade
        self.position = position
        self.phone_number = phone_number

    def study(self, time):
        print('{}学习{}时间。'.format(self.name, time))

    def play(self, game):
        print('{}玩{}游戏。'.format(self.name, game))

    def program(self, number):
        print('{}编程了{}行代码。'.format(self.name, number))

    def sum(self, *args):
        print('{}计算出的结果为{}。'.format(self.name, sum(args)))


# ii.车类：
# 属性：车型号，车轮数，车身颜色，车重量，油箱存储大小 。
# 功能：跑（要求参数传入车的具体功能，比如越野，赛车）
# 创建：法拉利，宝马，铃木，五菱，拖拉机对象
class Car:

    def __init__(self, model, wheels, color, weight, size):
        self.model = model
        self.wheels = wheels
        self.color = color
        self.weight = weight
        self.size = size

    def run(self, function):
        print('{}的功能是{}。'.format(self.model, function))


ferrari = Car('法拉利', 4, '白', 1000, 1000)
bmw = Car('宝马', 4, '白', 1000, 1000)
suzuki = Car('铃木', 4, '白', 1000, 1000)
wuling = Car('五菱', 4, '白', 1000, 1000)
tractor = Car('拖拉机', 4, '白', 1000, 1000)


# iii.笔记本：
# 属性：型号，待机时间，颜色，重量，cpu型号，内存大小，硬盘大小。
# 行为：打游戏（传入游戏的名称）,办公。
class Laptop:

    def __init__(self, car_type, standby_time, color, weight, cpu_model, memory_size, hard_disk_size):
        self.car_type = car_type
        self.standby_time = standby_time
        self.color = color
        self.weight = weight
        self.cpu_model = cpu_model
        self.memory_size = memory_size
        self.hard_disk_size = hard_disk_size

    def play(self, game):
        print('{}可以玩{}游戏。'.format(self.car_type, game))

    def work(self):
        print('{}可以办公。'.format(self.car_type))


# iv.猴子类：
# 属性：类别，性别，身体颜色，体重。
# 行为：造火（要求传入造火的材料：比如木棍还是石头），学习事物（要求参数传入学习的具体事物，可以不止学习一种事物）
class Monkey:
    def __init__(self, category, sex, color, weight):
        self.category = category
        self.sex = sex
        self.color = color
        self.weight = weight

    def make_fire(self, *m):
        print('{}可以用{}造火。'.format(self.category, m))

    def study(self, t):
        print('{}可以学习{}。'.format(self.category, t))
